1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.collect;
18
19 import static com.google.common.truth.Truth.assertThat;
20
21 import com.google.common.annotations.GwtCompatible;
22 import com.google.common.annotations.GwtIncompatible;
23 import com.google.common.base.Objects;
24 import com.google.common.testing.EqualsTester;
25
26
27
28
29
30
31 @GwtCompatible(emulated = true)
32 public class SingletonImmutableTableTest extends AbstractImmutableTableTest {
33 private final ImmutableTable<Character, Integer, String> testTable =
34 new SingletonImmutableTable<Character, Integer, String>('a', 1, "blah");
35
36 public void testHashCode() {
37 assertEquals(Objects.hashCode('a', 1, "blah"), testTable.hashCode());
38 }
39
40 public void testCellSet() {
41 assertEquals(ImmutableSet.of(Tables.immutableCell('a', 1, "blah")), testTable.cellSet());
42 }
43
44 public void testColumn() {
45 assertEquals(ImmutableMap.of(), testTable.column(0));
46 assertEquals(ImmutableMap.of('a', "blah"), testTable.column(1));
47 }
48
49 public void testColumnKeySet() {
50 assertEquals(ImmutableSet.of(1), testTable.columnKeySet());
51 }
52
53 public void testColumnMap() {
54 assertEquals(ImmutableMap.of(1, ImmutableMap.of('a', "blah")), testTable.columnMap());
55 }
56
57 public void testRow() {
58 assertEquals(ImmutableMap.of(), testTable.row('A'));
59 assertEquals(ImmutableMap.of(1, "blah"), testTable.row('a'));
60 }
61
62 public void testRowKeySet() {
63 assertEquals(ImmutableSet.of('a'), testTable.rowKeySet());
64 }
65
66 public void testRowMap() {
67 assertEquals(ImmutableMap.of('a', ImmutableMap.of(1, "blah")),
68 testTable.rowMap());
69 }
70
71 public void testEqualsObject() {
72 new EqualsTester()
73 .addEqualityGroup(testTable, HashBasedTable.create(testTable))
74 .addEqualityGroup(ImmutableTable.of(), HashBasedTable.create())
75 .addEqualityGroup(HashBasedTable.create(ImmutableTable.of('A', 2, "")))
76 .testEquals();
77 }
78
79 @GwtIncompatible("ArrayTable")
80 public void testEqualsObjectNullValues() {
81 new EqualsTester()
82 .addEqualityGroup(testTable)
83 .addEqualityGroup(ArrayTable.create(ImmutableSet.of('A'), ImmutableSet.of(1)))
84 .testEquals();
85 }
86
87 public void testToString() {
88 assertEquals("{a={1=blah}}", testTable.toString());
89 }
90
91 public void testContains() {
92 assertTrue(testTable.contains('a', 1));
93 assertFalse(testTable.contains('a', 2));
94 assertFalse(testTable.contains('A', 1));
95 assertFalse(testTable.contains('A', 2));
96 }
97
98 public void testContainsColumn() {
99 assertTrue(testTable.containsColumn(1));
100 assertFalse(testTable.containsColumn(2));
101 }
102
103 public void testContainsRow() {
104 assertTrue(testTable.containsRow('a'));
105 assertFalse(testTable.containsRow('A'));
106 }
107
108 public void testContainsValue() {
109 assertTrue(testTable.containsValue("blah"));
110 assertFalse(testTable.containsValue(""));
111 }
112
113 public void testGet() {
114 assertEquals("blah", testTable.get('a', 1));
115 assertNull(testTable.get('a', 2));
116 assertNull(testTable.get('A', 1));
117 assertNull(testTable.get('A', 2));
118 }
119
120 public void testIsEmpty() {
121 assertFalse(testTable.isEmpty());
122 }
123
124 public void testSize() {
125 assertEquals(1, testTable.size());
126 }
127
128 public void testValues() {
129 assertThat(testTable.values()).has().item("blah");
130 }
131
132 @Override Iterable<ImmutableTable<Character, Integer, String>> getTestInstances() {
133 return ImmutableSet.of(testTable);
134 }
135 }